Field of the Invention
The present invention relates to a robot controlling method, a robot apparatus, a program and a recording medium for controlling operation of each joint of a robot according to each joint instruction value.
Description of the Related Art
In recent years, robot apparatuses engaged in production, such as assembly, are developed in many cases. An ultimate object of the robot apparatus is to realize complicated and fast assembly work, like that of a hand of a human, in a robot. The robot is controlled according to an instruction trajectory, that is, a joint instruction value of each joint (joint instruction value indicating an angle in a case of a rotary joint, joint instruction value indicating a length in a case of a linear motion joint). However, there is a difference (trajectory error) between the instruction trajectory of the robot and an actual trajectory of the robot. The trajectory error is an obstacle in precise work by the robot. For example, the error needs to be equal to or smaller than 0.1 millimeter in the assembly of a precise component.
Consequently, a technique is proposed, in which a deflection in a multi-joint robot is corrected to improve accuracy of position and orientation, thereby allowing highly accurate operation (Japanese Patent No. 3808321).
In the conventional technique, an error of a robot end due to the deflection of each joint is calculated, and a correction quantity of each joint instruction value for correcting the error is calculated. In general, the multi-joint robot has a cantilever structure with a low stiffness, and the deflection is large. The error in position and orientation of each joint includes an error in a driving direction of the joint as well as errors in other directions. The error of the robot end is several millimeters due to the effect of the error in position and orientation of each joint. In a large arm with a full length of more than 1 [m], the error may exceed 10 millimeters. Inverse mechanism calculation (inverse kinetics calculation) is generally used to calculate the correction quantity of the joint instruction value of each joint based on the error of the robot end. In the inverse mechanism calculation, a case without an error in position and orientation of the joint, such as deflection of the joint, is simulated, and a formula is used to derive a solution. Therefore, the correction quantity for correcting the joint instruction value of each joint calculated by the inverse mechanism calculation always includes a calculation error. When the error of the robot end is large, a correction error of the correction quantity that occurs at the correction of the error is also large.
Therefore, the correction quantity of the joint instruction value of each joint cannot be obtained with a sufficient accuracy by one calculation in the conventional technique. As a result, convergent calculation, that is, loop calculation, is necessary. However, the correction calculation needs to be performed during the operation of the robot. For example, when a time interval of outputting the joint instruction value of each joint is 2 [ms], the convergent calculation needs to be performed within a short time of 2 [ms]. If restrictions of convergence determination are eased to reduce the calculation time required for the convergent calculation, the correction error increases, and highly accurate correction is difficult.